package com.nimitz.module.employee.mapper;

import com.nimitz.module.employee.domain.EmpDimission;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 离职 数据层
 */
public interface EmpDimissionMapper {

    /**
     * 新增离职
     *
     * @param dimission 离职
     * @return 结果
     */
    int insertDimission(@Param(value = "dimission") EmpDimission dimission);

    /**
     * 批量删除离职
     *
     * @param dimissionIds 人员id集合
     * @return 结果
     */
    int deleteDimissionByIds(@Param(value = "updateBy") String updateBy, @Param(value = "dimissionIds") Integer[] dimissionIds);

    /**
     * 修改离职
     *
     * @param dimission 离职
     * @return 结果
     */
    int updateDimission(@Param(value = "dimission") EmpDimission dimission);

    /**
     * 根据离职id查询离职
     *
     * @param dimissionId 离职id
     * @return 离职
     */
    EmpDimission selectDimissionById(@Param(value = "dimissionId") Integer dimissionId);

    /**
     * 根据离职id查询离职
     *
     * @param dimissionIds 离职ids
     * @return 离职
     */
    List<EmpDimission> selectDimissionByIds(@Param(value = "dimissionIds") Integer[] dimissionIds);

    /**
     * 根据条件查询离职列表（含分页）
     *
     * @param dimission 离职
     * @return 离职集合
     */
    List<EmpDimission> selectDimissionList(@Param(value = "dimission") EmpDimission dimission);

    /**
     * 批量提交
     *
     * @param updateBy     更新者
     * @param dimissionIds 离职ID集合
     * @return 结果
     */
    int submitDimission(@Param(value = "updateBy") String updateBy, @Param(value = "dimissionIds") Integer[] dimissionIds);

    /**
     * 批量驳回
     *
     * @param updateBy     更新者
     * @param dimissionIds 离职ID集合
     * @return 结果
     */
    int rejectDimission(@Param(value = "updateBy") String updateBy, @Param(value = "dimissionIds") Integer[] dimissionIds);

    /**
     * 批量审核
     *
     * @param updateBy     更新者
     * @param dimissionIds 离职ID集合
     * @return 结果
     */
    int auditDimission(@Param(value = "updateBy") String updateBy, @Param(value = "dimissionIds") Integer[] dimissionIds);
}
